{{tag>I2P p2p internet réseau anonymat}}

----

====== I2P : Réseau Anonyme ======

I2P (Invisible Internet Project) est un réseau anonyme, offrant une simple couche logicielle que les applications peuvent employer pour envoyer de façon anonyme et sécurisée des messages entre elles. La communication est chiffrée d'extrémité à extrémité.


=====Installation=====

====Par launchpad (facile) ====

  * [[:PPA|Ajoutez le PPA]] **ppa:i2p.packages/i2p**((https://launchpad.net/~i2p.packages/+archive/i2p)) dans vos sources de logiciels ;
  * ou **ppa:i2p-maintainers/i2p**((https://launchpad.net/~i2p-maintainers/+archive/i2p)) de la team [[http://www.i2p2.de/debian.html|i2p-maintainers]]
  * [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|Rechargez la liste des paquets]] ;
  * [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://i2p|i2p]]**.

Si le routeur n'a pas démarré, le démarrer par :

  i2prouter start

Vous pouvez alors faire la [[#Subscription DNS]], et pour naviguer sur internet configurer [[#firefox]]

Vous trouverez également dans le même dépots :
  * [[apt://i2p-messenger|i2p-messenger]]
  * [[apt://imule|imule ]]
  * [[apt://robert|robert ]] client bittorent pour i2P
  * [[apt://tor|tor ]]
  * [[apt://|tahoe-lafs ]] pour i2P
====Installation Manuelle====

===== Pré-requis =====

Une plate-forme d'exécution [[java|Java]] : [[apt://openjdk-6-jre|openjdk-6-jre]] ou [[apt://sun-java6-jre|sun-java6-jre]].

==== Pré-requis supplémentaire pour la méthode par compilation ====

Avant de commencer la compilation d'I2P, il est nécessaire de procéder à l'installation des paquets suivants :

  * [[apt://ant|Ant]]
  * Une plate-forme de développement java : [[apt://openjdk-6-jdk|openjdk-6-jdk]] ou  [[apt://sun-java6-jdk|sun-java6-jdk]]



<note>Depuis la version 0.7.5, I2P prend en charge l'UPnP ; l'ouverture des ports n'est donc plus nécessaire pour les cas d'utilisation courants</note>

Ainsi qu'à l'ouverture des ports suivants sur votre routeur : **8887 (TCP et UDP), 123 (UDP)**



===== Installation =====

==== Méthode par compilation ====

Téléchargez la dernière version de I2P sur cette page

[[https://geti2p.net/fr/download]]

Prenez le fichier source (I2Psource_X.X.X.tar.bz2), afin d'effectuer la compilation propre à votre système.

C'est une méthode fiable pour ne pas avoir des problèmes plus tard.

Décompressez l'archive dans un dossier
<code>tar xjvf i2psource_X.X.X.tar.bz2</code>

Placez-vous dans le dossier
  cd i2p-X.X.X
et lancer la compilation avec la commande suivante
<code>ant pkg</code>
<note important>

Au milieu de la compilation, il vous demande si vous voulez télécharger et installer jetty

Tapez **y** puis entrée</note>

Si tout se passe bien vous finissez par un **BUILD SUCCESSFUL**

<note tip>

Si ce n'est pas le cas essayez de relancer une deuxième fois la compilation

Si ça ne marche toujours pas, postez votre problème sur le forum

[[http://forum.ubuntu-fr.org/viewtopic.php?id=309829]]
</note>


Passons maintenant à l'installation.

En ligne de commande
<code>java -jar install.jar -console</code>

Ou en graphique
<code>java -jar install.jar</code>

L'interface graphique d'installation se lance

{{:I2P_-_installation.png|}}

Faites "**Next**" 2 fois.

{{:I2P_-_installation_-_folder.png|}}

**Choisissez votre dossier d'installation**, faites "**Next**", le programme s'installe.
"
Une fois installé, faites "**Next**" une nouvelle fois, puis "**Done**".
==== Installation en graphique avec le binaire fourni ====

Téléchargez la dernière version de I2P sur cette page [[https://geti2p.net/en/download]]. Téléchargez le fichier i2pinstall_X.X.X.exe puis en console :
  cd /home/$USER/Téléchargements
  java -jar i2pinstall_X.X.X.exe

L'interface graphique d'installation se lance alors comme précédemment.

<note important>Attendez quelques minutes, le temps que le routeur I2P démarre (ça peut durer 5-10mn).
Sinon exécuter le commande ./i2prouter start depuis le répertoire où est installé I2P (choisis lors de l'installation).
</note>

**__Une fois qu'il est démarré, votre navigateur web va démarrer et afficher la page d'accueil d'I2P.__**

si ce n'est pas le cas vous pouvez vous connecter à l'interface de configuration à l'url suivante : [[http://127.0.0.1:7657]]


{{:I2P_router_console.png|}}

<note tip>Si le router ne démarre pas, tapez dans le terminal : ./i2prouter start</note>

Passons maintenant à la configuration


===== Configuration =====

Vous pouvez remarquer sur la gauche une colonne avec les différentes informations de connexion.

C'est à cet endroit que vous allez pouvoir contrôler le routeur.

{{:I2P_router_console-status.png|}}

Vous pouvez voir dans cette partie le status de la connexion au routeur (reachability).

Comme sur la capture il doit indiquer **OK**

Si il vous indique **Firewalled**, c'est que les ports indiqués dans le pré-requis n'ont pas été correctement ouverts. Vérifier votre configuration.

{{:I2P_router_console-peers.png|}}

Cette section vous indique le nombre de pairs (peers) actifs (qui doit monter progressivement), ainsi que la bande passante utilisée.

Voilà ça y est, le routeur I2P est installé sur votre machine et vous êtes libre de surfer anonymement.

Seulement celui-ci ne redémarrera pas automatiquement lors du prochain reboot de la machine. Il vous faut donc effectuer 2,3 manipulations pour qu'il démarre automatiquement.

====Subscription DNS====
   * Allez la page de configuration : http://127.0.0.1:7657/susidns/subscriptions.jsp
   * Ajoutez la liste des hosts recensé : <code>http://www.i2p2.i2p/hosts.txt
http://tino.i2p/hosts.txt
http://stats.i2p/cgi-bin/newhosts.txt
http://i2host.i2p/cgi-bin/i2hostetag
http://hosts.i2p/hosts.cgi?filter=all
http://biw5iauxm7cjkakqygod3tq4w6ic4zzz5mtd4c7xdvvz54fyhnwa.b32.i2p/uncensored_hosts.txt
</code>

Un service de dns évolué semble se mettre en place : http://icand.i2p

==== Bande passante ====

=== Limites de bande passante ===

Avant toute chose vous devez régler votre bande passante. Pour ce faire, rendez-vous sur la page **[[http://127.0.0.1:7657/config.jsp|Configuration -> Network]]**.

Ajustez les valeurs de bande passante (**Bandwith Limiter**) selon votre connexion. Rendez-vous sur [[http://www.speedtest.net/|Speedtest]] et testez votre connexion

<note important>Ne confondez pas kbps (kilobits par seconde) et kBps (kilobytes par seconde). 1 kilobyte = 8 kilobits.

Si vous avez une connexion de 1024kbps en émission, ca donne 128kBps en théorique (ou 128 Ko/s)</note>

Le tableau ci-dessous récapitule les différents débits généralement constatés selon votre connexion :
^ Débit de votre connexion   ^  Débit de votre connexion en kilobyte/s          ^
| 64 kbps   | approx. 8 kBps     |
| 512 kbps  | approx. 50 kBps     |
| 1 Mbps   | approx. 100 kBps     |
| 10 Mbps   | approx. 1100 kBps     |
| 100 Mbps   | approx. 11000 kBps     |

Régler votre bande passante légèrement en dessous de votre débit (ex: 1 Mbps -> 80kBps), pour ne pas saturer votre bande passante.

<note important>Ces paramètres définissent la bande passante générale pour I2P, donc toutes les applications utilisant I2P ne pourront jamais dépasser ces limites.</note>

=== Partage de bande passante ===

Ensuite définissez quelle pourcentage de bande passante vous souhaitez attribuer à I2P (par défaut: 80%). 

**Ce réglage correspond à la bande passante partagée que vous attribuer à I2P, c'est à dire au trafic qui transite par votre machine mais dont vous n'êtes ni la destination, ni l'émetteur.**

<note tip>Gardez à l'esprit qu'au plus vous partagerez de bande passante, au plus le réseau sera rapide et efficace. Il n'y a aucun serveur de routage à haut débit fourni par l'équipe I2P. 

Les utilisateurs créent et fournissent eux-mêmes la bande passante du réseau</note>

Si vous souhaitez aider I2P à se développer les réglages suivants sont recommandés :

  * **100%** si votre bande passantes est **> 1024kbps**
  *  **80%** si votre bande passantes est **> 30kbps**
  *  **50%** si votre bande passantes est **> 16kbps**

=== Nombre de tunnels participants ===

Les tunnels participants sont essentiels dans I2P. En effet c'est par ces tunnels que vont transiter toutes les informations et que le réseau I2P se constitue.

Il est donc primordial de procéder à un réglage, qui va éviter à votre machine de consommer trop de ressources processeur (dû à un trop grand nombre de tunnels).

Rendez-vous sur la page : [[http://127.0.0.1:7657/configadvanced.jsp|Configuration -> advanced]], et ajoutez cette ligne :
<code>router.maxParticipatingTunnels=500</code>
Il vous faut **redémarrer le routeur** après avoir cliqué sur **sauvegarder**. Les tunnels sont désormais limité à 500.

Le tableau ci-dessous fournit les correspondance tunnel -> bande passante :

^ Nombre de tunnels   ^  Bande passante          ^
| 3000   | 1500 kbps (valeur élevée avec une grosse consommation processeur)     |
| 2000   | 900 kbps     |
| 1000   | 500 kbps     |
| 600   | 300 kbps     |
| 300   | 150 kbps     |
| 150   | 70 kbps     |

//source : [[http://echelon.i2p/I2Pguide/bandwidth.html|Echelon.i2p]]//
==== Démarrage automatique ====

=== Si vous êtes le seul utilisateur ===

Vous pouvez ajouter au menu **Système->Session (ou Applications au démarrage sur Jaunty)**  un nouveau lanceur.

Cliquer sur **Ajouter** et tapez cette ligne dans commande (bien sur adaptez le chemin selon votre configuration).

  ~/i2p/i2prouter start

=== Si vous êtes plusieurs utilisateurs sur la même machine ===

Mieux vaut l'installer en tant que service

Créer le lien symbolique

<code>sudo ln -s /chemin_de_i2p/i2prouter /etc/init.d/i2prouter</code>

Mettons à jour les liens RC
<code>sudo update-rc.d i2prouter defaults</code>




==== Réseau local ====
<note important>Toutes les fonctionnalités qui vont suivre sont maintenant gérées nativement : [[http://localhost:7657/i2ptunnel/index.jsp]]</note>

=== Accès à la console I2P depuis un autre poste du réseau ===

Par défaut la console I2P n'est accessible que depuis la machine locale.
Editer le fichier "clients.config" dans "/home/**USER**/.i2p/clients.config".

Dans les nouvelles versions comme la 0.9.43 le fichier se nomme "00-net.i2p.router.web.RouterConsoleRunner-clients.config" situé dans le dossier "/home/**USER**/.i2p/clients.config.d".

**USER** étant l'utilisateur qui exécute la commande "i2prouter start". 

Changer la ligne suivante : 
<code>clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/</code>
par
<code>clientApp.0.args=7657 0.0.0.0 ./webapps/</code>

Si la modification du clients.config dans le dossier d'installation d'I2P n'a pas d'incidence, regardez dans /root/.i2p/ s'il n'y a pas un autre fichier clients.config

<note important>Pour les bidouilleurs, ceci n'est en aucun cas un masque mais une adresse IP vers une interface. 0.0.0.0 signifie "Lier vers toutes les interfaces" </note>

Si vous voulez, vous pouvez mettre un mot de passe pour protéger l'accès.

Rendez vous sur la page de configuration avancée : [[http://localhost:7657/configadvanced.jsp]] et rajouter cette option :
<code>consolePassword=Mon_mot_de_passe</code>

Pour finir redémarrer le service I2P dans la colonne de gauche.

En cas de perte de vos identifiants, ils se trouver dans le fichier **/home/VotreUser/.i2p/router.config**
A la ligne **routerconsole.auth.i2prouter.VotreID=Votre-MP-chiffrée**

Supprimer la ligne **routerconsole.auth.i2prouter.VotreID=Votre-MP-chiffrée**

Et remplacer **true** par **false** à la ligne
**routerconsole.auth.enable=true** puis redémarré I2p.

=== Accès aux applications I2P depuis un autre poste du réseau ===

Pour pouvoir accéder aux application I2P (SusiMail, SusiDNS, I2PSnark...), rendez vous sur la page de configuration avancée : [[http://localhost:7657/configadvanced.jsp]] et rajouter cette option :
<code>i2cp.tcp.bindAllInterfaces=true</code>

Pour finir redémarrer le service I2P dans la colonne de gauche.

=== Naviguez sur les sites I2P depuis toutes (ou certaines) machines de votre réseau ===

Installer [[:privoxy]] sur la machine qui fait tourner I2P.

Editez les sections suivantes du fichier **/etc/privoxy/config** :

**Section 4.1 - listen-adress**, changez la ligne :
<code>listen-address    127.0.0.1:8118</code>
par
<code>listen-address    :8118</code>
__Privoxy écoute désormais sur toutes les interfaces de votre machine.__

Certains diront : "Pas top niveau sécurité !" et ils auraient raison, donc si vous souhaitez restreindre l'accès à certaines adresses IP

**Section 4.7 - ACLs: permit-access and deny-access**

Ajoutez autant de lignes que d'adresses IP à autoriser :
<code>
permit-access  192.168.0.2
permit-access  192.168.0.3
...
</code>

Ou, pour ajouter un brin complet :
<code>
permit-access  192.168.0.1/26
</code>

Sauvegarder et redémarrer Privoxy
<code>sudo /etc/init.d/privoxy restart</code>

Mettre à jour le proxy HTTP de tous les navigateurs Web de votre réseau local pour qu'ils pointent vers l'adresse IP de cette machine. Le port reste le **8118**. 
<note important>N'oublier pas d'ouvrir le port **8118** sur le firewall de cette machine, si besoin est.</note>
===== Logiciels fournis avec I2P =====

I2P est fourni avec des logiciels pré-installés comme :
  * __**Susimail**__ : Courrielleur web
  * __**SusiDNS**__  : Permet de gérer les adresses de "eepsites" (sites web) par syndication (gestion décentralisée)
  * __**I2PSnark**__ : Client BitTorrent
  * __**I2Phex**__   : Client Gnutella (partage de fichiers) dérivé de Phex

Ces logiciels sont accessibles dans la barre en haut de la page principale d'I2P.

====I2PSnark====

I2PSnark est le Client BitTorrent installé par défaut avec i2p, il est disponible à l'adresse http://127.0.0.1:7657/i2psnark

L'ajout de fichiers torrents est possible soit via cette interface web, soit via le dépôt de fichiers dans le répertoire /home/utilisateur/.i2p/i2psnark. Dans ce dernier cas le téléchargement démarrera automatiquement au bout de quelques minutes.

Attention, l'usage de torrent via I2P n'est fonctionnel que pour des fichiers torrents prévus pour le réseau I2P, il n'est donc pas possible de télécharger n'importe quel torrent provenant de votre tracker favori.

<note tip>
Liste des trackers : 
    * http://tracker2.postman.i2p
    * http://crstrack.i2p
</note>

D'autres clients bittorent sont compatible avec i2p : [[transmission]] (par défaut), robert

====I2Phex====

Client Gnutella installable en allant sur le site : plugins.i2p (I2P requis)

===== Logiciels fonctionnant avec I2P =====

==== Firefox ====

=== Surf anonyme sur tous les liens ===

Configurer le proxy I2P local. **Edition -> Préférences -> Avancé -> Réseau -> Paramètres**. 

Cochez **Configuration manuelle du proxy** et entrer les valeurs suivantes dans la case **Proxy HTTP** :
<code>
Serveur : localhost
Port : 4444
</code>

<note tip>Installer le module **Quick Proxy** pour pouvoir activez/désactiver en un clic le proxy</note>

Evidemment le routeur I2P fonctionne avec tous les navigateurs prenant en charge l'utilisation d'un proxy.

=== Surf anonyme sur les liens .i2p (Privoxy) ===

Installer Privoxy : [[apt://privoxy]]

Ouvrez le fichier de config de privoxy
<code>gksudo gedit /etc/privoxy/config</code>

Collez-y ces lignes dans la section **forward-socks4, forward-socks4a and forward-socks5** vers la fin du fichier
<code>
#this forwards all requests to .i2p domains to the local i2p
#proxy without dns requests
forward .i2p localhost:4444
</code>

Sauvegarder et redémarrer Privoxy
<code>sudo /etc/init.d/privoxy restart</code>

Configurer le proxy de Firefox de la même manière que dans la section précédente sauf que le port est le **8118**

==== iMule ====
[[http://iMule/|iMule]] est un logiciel client d'échange de fichiers pair-à-pair ([[P2P]]) anonyme, reposant sur la couche réseau d'anonymat I2P. Son interface et ses fonctions sont similaires à celles de [[eMule]], c'est un fork de [[aMule]].

Comme pour eMule, iMule utilise le protocole Kademlia pour trouver des fichiers à télécharger et échanger à travers Internet et il peut gérer les liens ''ed2k'' habituels. Sa différence est que toutes les communications envoyées et reçues par iMule passent au travers du protocole réseau d'anonymat I2P, qui vous rend difficilement traçable, voire intraçable. Cette particularité oblige l'utilisation d'une version modifiée de Kademlia, et iMule ne peut donc partager des fichiers qu'avec d'autres clients iMule.

Parce qu'il est anonyme, l'échange de fichiers par iMule est nécessairement plus lent qu'à travers ses pendants non-anonymes eMule et aMule. De plus, comme il doit utiliser son propre réseau aujourd'hui moins fréquenté, le nombre et la diversité des fichiers échangés sont moindres. Néanmoins, sa vitesse, tout à fait acceptable pour un logiciel sécurisé, et sa grande activité dans les milieux francophones en fait un logiciel doté d'un avenir très prometteur.

//[[imule|Consultez la page dédiée à iMule]]//

===== Voir aussi =====
  * **(fr)**  [[wpfr>I2P|"I2P" sur Wikipedia]]
  * [[https://geti2p.net/fr/|Site officiel I2P]]
  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=309829|Post I2P - iMule sur Ubuntu-fr]] (2009)
  * [[http://sd-1.archive-host.com/membres/up/212456601740008059/TutorialI2P_et_IMULE.pdf|Tutorial I2P et iMule de Gepetto57]] (2009)